(1) Field of the Invention
The present invention relates to a client/server system in which an object within a client at a remote or local location makes a request to and receives a response from one of a plurality of image processing objects within one of a plurality of servers by utilizing an object-oriented middleware contained in the client and the servers. Further, the present invention relates to a computer program product embedded in a computer readable storage medium to either execute the functions of the client or execute the functions of the image processing objects which the servers provide for the client.
(2) Description of the Related Art
A client/server system developed to improve efficiency of a network of data processing devices is known. Typically, in this client/server system, one or more client computers, such as personal computers or workstations, and one or more server computers, such as file servers or database servers, are connected to a communication network such as a local area network (LAN).
Hereinafter, in the following description, the client computers will be simply called clients, and the server computers will be simply called servers, for the sake of simplicity.
In a case in which the servers in the above client/server system are file servers including stored document data, a request for retrieving data of a desired document is input by a user on one of the clients on the network, and this request is transmitted to one of the file servers via the communication network. The file server produces a result of the retrieval of document data as a response to the request, and the response is transmitted to the client via the communication network.
Generally, the client and server computers in the above-mentioned system use different operating systems and different formats of data being processed. It is necessary that application programs are individually developed for the respective computers in conformity with their operating systems and their data conversion formats. Therefore, the development of application programs for the above client/server system has been very costly.
Recently, the Common Object Request Broker Architecture (CORBA) has been proposed by the Object Management Group (OMG) for a next generation of middleware. The CORBA provides an Object Request Broker (ORB) which defines a CORBA object bus. The ORB is middleware that has the potential of subsuming every other form of existing client/server middleware. The CORBA uses objects as a unifying metaphor for bringing to the bus existing applications.
The CORBA ORB lets objects transparently make requests to and receive responses from other objects located locally or remotely. The client is not aware of the mechanisms used to communicate with, activate, or store the server objects. The ORB provides various benefits which cannot be attained by other forms of middleware. For example, a CORBA ORB lets a user either statically define the user's method invocations at compile time, or it lets a user dynamically discover the method invocations at run time. Further, a CORBA ORB lets a user invoke methods on server objects using the user's high-level language of choice--currently C, C++, Ada and Smalltalk. It does not matter what language server objects are written in. The CORBA separates interface from implementation and provides language-neutral data types that make it possible to call objects across language and operating system boundaries. In contrast, other types of middleware typically provide low-level, language-specific, application interface libraries. And they do not separate implementation from specification--the application interface is tightly bound to the implementation, which makes it very sensitive to changes.
Further, the OMG has provided interface specifications which are written in a neutral Interface Definition Language (IDL). The IDL defines a component's boundaries, that is, its contractual interfaces with potential clients. Components written in the IDL are portable across programming languages, tools, operating systems, and networks.
It is conceivable to utilize the CORBA ORB as a middleware for a client-server system. The ORB-based client/server system makes it possible to exchange character or numerical data between the client and the server using different operating systems.
However, there is no known ORB-based client/server system which is applied to image processing services including enabling a remote client to transparently make a request to and receive a response from one of a plurality of image processing objects within a server across a network. The services of the image processing objects which are provided by such a system to the client may include an image printing service, an image reading service, a facsimile service, an image data communication service and a malfunction monitoring service. Many servers in the known client/server systems cannot provide the client with such image processing services.
It is desirable to provide a client/server system that can provide the client with image processing services from the server in response to a request sent by the client across a network. This client/server system provides various image processing services for the client, for example, a parallel printing function of multiple image processing devices, or a remote-controlled replacement of an existing server by a new server when the existing server malfunctions. Although there is an increasing need for the provision of such image processing services, it is impossible for the existing client/server systems to provide the image processing services.